/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wf3.core;

import acceso.hibernate.AQuery;
import acceso.util.Escritor;
import wf.dto.pptraconfin;
import wf.dto.pptraconini;
import wf.dto.pptrapagfin;
import wf.dto.pptrapagini;
import wf3.hibernate.WQuery;
import wf3.log.Log;

/**
 *
 * @author romulogalindo
 */
public class ManagerTransa {

    private static final Transa session = new Transa();
    private static final ManagerQuery query = new ManagerQuery();
    private static final Log log = new Log(ManagerTransa.class);

    static {
        try {
            session.setSession(acceso.hibernate.AccesoHibernate.new_session());
            log.log("Motor de transacciones levantado");
        } catch (Throwable ep) {
            System.err.println("Error al generar la transacción");
            ep.printStackTrace();
        }
    }

    /**
     * Inserta y genera un transacción del contenedor en base al id de transacción
     *
     * @param p_id_transa
     * @param p_id_frawor
     * @param p_co_conten
     */
    public static void transacon_ini(int p_id_transa, int p_id_frawor, int p_co_conten) {
        WQuery q = query.GET_QUERY(session.getSession(), "frawor2.pptraconini");
        q.setInteger("p_id_transa", p_id_transa);
        q.setInteger("p_id_frawor", p_id_frawor);
        q.setInteger("p_co_conten", p_co_conten);
        pptraconini transacon = (pptraconini) q.uniqueResult();
        log.log(q.SQLQuery());
    }

    /**
     * Cierra la transacción del contenedor en base al id de transacción
     *
     * @param p_id_transa
     */
    public static void transacon_fin(int p_id_transa) {
        WQuery q = query.GET_QUERY(session.getSession(), "frawor2.pptraconfin");
        q.setInteger("p_id_transa", p_id_transa);
        pptraconfin transacon = (pptraconfin) q.uniqueResult();
        log.log(q.SQLQuery());
    }
    
    /**
     * Inserta y genera un transacción del de una página en base al id de transacción y el contendor
     *
     * @param p_id_transa
     * @param p_id_frawor
     * @param p_co_conten
     */
    public static void transapag_ini(int p_id_transa, int p_id_frawor, int p_co_pagina){
        WQuery q = query.GET_QUERY(session.getSession(), "frawor2.pptrapagini");
        q.setInteger("p_id_transa", p_id_transa);
        q.setInteger("p_id_frawor", p_id_frawor);
        q.setInteger("p_co_pagina", p_co_pagina);
        pptrapagini trapagini = (pptrapagini) q.uniqueResult();
        log.log(q.SQLQuery());
    }
    
    /**
     * Cierra la transacción de la página en base al id de transacción y la página
     *
     * @param p_id_transa
     * @param p_co_pagina
     */
    public static void transapag_fin(int p_id_transa, int p_co_pagina){
        WQuery q = query.GET_QUERY(session.getSession(), "frawor2.pptrapagfin");
        q.setInteger("p_id_transa", p_id_transa);
        q.setInteger("p_co_pagina", p_co_pagina);
        pptrapagfin trapagfin = (pptrapagfin) q.uniqueResult();
        log.log(q.SQLQuery());
    }
    
    
}
